跳到主要内容

Redis 配置环境

Redis 是什么?

Redis 是一种 NoSQL (非关系型数据库)类型的数据库

关系型数据库:MySQL、Oracle...

就是数据都是存在表里,表与表,字段与字段之间都有关系

非关系型数据库:redis、hbase...

数据之间没有什么关系,都是以 key-value 的形式存储的

注:这些 NoSQL 型数据库本身也没有什么规范,学了 redis 再学 hbase 也需重新学

两种数据库的使用关系

两种数据库并非只能二选一,而是一起使用

一般会将数据存到关系型数据库中,在 NoSQL 数据库中备份存储关系型数据库的数据

image.png

上面那个做缓存部分的就是 redis

所以,一些不经常变化的数据可以丢掉 Redis 上去,请求过来时,先判断缓存区是否有数据,没有则请求 MySQL 数据库,把 MySQL 的数据存到缓存中,然后再响应数据。这样下次请求时就无需访问 MySQL 数据库了

数据库的数据一旦发生变化(增删改)需要更新缓存

实际上只是单台机器是可以考虑直接使用 Map 集合的,但是如果要分布式的话则应该采用这种专门的非关系式数据库(可以单独部署一台服务器用来存缓存区的数据)

redis 一个把数据存到内存上的数据库(但是也可以将内存上的数据保存到硬盘上),所以相较于 MySQL 这种把数据持久到硬盘上的数据库肯定上快上不少

安装环境

参考资料 官网的下载地址 参考资料 中文网 不推荐,实在网速太慢再去看吧,版本比较旧了 参考资料 GitHub下载资源 Windows 上的,但是不推荐使用(版本太旧了..)

官网只有 Linux 版的源码,还需要自己编译,且 redis 没有 Windows 上支持的最新版本(好像是说 Linux 的系统实现和 Windows 上的不同),所以还是以 Linux 为主

有两种安装方式:

手动编译安装

手动编译的方式(好处就是性能更高?)

# 因为需要 gc++ 环境,所以这里使用 build-essential 这个集成环境
sudo apt-get install build-essential

wget wget http://download.redis.io/releases/redis-6.0.6.tar.gz
tar xzf redis-5.0.4.tar.gz
cd redis-5.0.4
# 编译
make

# 编译完成之后可以再编译一个 test 工具
make test
# 如果报错则需要再安装一个 tcl 工具
sudo apt-get install tcl

使用包管理器安装

或者使用 apt-get 来安装

sudo apt-get update
sudo apt-get install redis-server

安装完成后使用下列命令启动服务

redis-server

然后新开一个 shell 使用 redis-cli 开启一个 redis 的命令界面然后 ping 一下 出现如下,表明服务开启成功

127.0.0.1:6379>ping
PONG

设置日志文件权限

因为默认的破路径有权限的问题,所以改下日志文件的路径的权限

# 给目录设置可访问的权限(注意:设置权限要加上 -R 才是这个目录下的所有子目录,否则只是这个目录设置了权限)
sudo chmod -R 777 /var/log/redis/

# 顺便也给下面那个工作目录和配置文件设置下权限
sudo chmod -R 777 /var/lib/redis
sudo chmod 777 /etc/redis/redis.conf

配置文件路径

\etc\redis

然后进 redis-cli 不保存关闭

shutdown NoSAVE

在终端操作 ~

启动服务端

redis-server

image.png

显示显示端口号,对应的访问这个端口号就能访问到这个数据库了

启动客户端

开一个新的窗口开启客户端

注意打开 cli 需要加上一个参数 --raw 否则会出现中文乱码(16 进制显示),但是只是这个客户端显示出现问题,实际取出来的数据不受影响

这个参数的作用是:对响应使用原始格式

redis-cli  --raw 

操作数据的方式

操作 Redis 有两种方式(和 MySQL 一样)

1、使用自带的 cli 命令工具 2、使用代码的方式

在继续讲如何操作数据前,先来看下 Redis 的数据结构

前面已经说了 redis 是默认 key-value 形式存储数据的(就是一个大号的 Map 集合)

127.0.0.1:6379> set username 张三
OK
127.0.0.1:6379> get username
张三

Redis 支持的数据类型

1、字符类型 string 2、哈希类型 hash:Map 的格式 3、列表类型 list 4、集合类型 set 5、有序集合 sortedset

所以操作时也是直接操作这些数据的 Key

打印所有数据

# 列出所有的key
keys *

通用命令

# 查询所有的 key(可以用正则表达式)
keys *

# 查看某个 key 的类型
type key

# 指定删除 key
del key

Reference